#include <stdio.h>
#define MAX 2147483647
int main()
{
    long int n, m, re();
    int count = 0;
    printf("Please enter a unmber optionaly:");
    scanf("%ld", &n);
    printf("The generation process of palindrome:\n");
    while (!nonre((m = re(n)) + n))
    {
        if (m + n >= MAX)
        {
            printf("input error break:\n");
            break;
        }
        else
        {
            printf("[%d]:%ld+%ld=%ld\n", ++count, n, m, m + n);
            n += m;
        }
    }
    printf("[%d]:%ld+%ld=%ld=%ld\n", ++count, n, m, m + n);
    printf("Here we reached the aim at last!\n");
}
long re(a);
long int a;
{
    long int t;
    for (t = 0; a > 0; a /= 10)
        t = t * 10 + a % 10;
    return (t);
}
nonre(s) long int s;
{
    if (re(s) == s)
        return (1);
    else
        return (0);
}